/**
 * //整数转换。编写一个函数，确定需要改变几个位才能将整数A转成整数B。
 * //
 * // 示例1:
 * //
 * //
 * // 输入：A = 29 （或者0b11101）, B = 15（或者0b01111）
 * // 输出：2
 * //
 * //
 * // 示例2:
 * //
 * //
 * // 输入：A = 1，B = 2
 * // 输出：2
 * //
 * //
 * // 提示:
 * //
 * //
 * // A，B范围在[-2147483648, 2147483647]之间
 * //
 * //
 * // Related Topics 位运算 👍 45 👎 0
 */

package com.xixi.basicAlgroithms.bitManipulation;

public class ID_interview_05_06_ConvertIntegerLcci {
    public static void main(String[] args) {
        Solution solution = new ID_interview_05_06_ConvertIntegerLcci().new Solution();
    }


    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int convertInteger(int A, int B) {
            int res = A ^ B;

            int steps = 0;
            while (res != 0) {

                if ((res & 1) == 1) steps++;

                res >>>= 1;
            }

            return steps;

        }
    }
//leetcode submit region end(Prohibit modification and deletion)


}